// Problem: 
// Contest: 
// URL: 
// Memory Limit: 
// Time Limit: 
// #pragma GCC optimize("Ofast")
// #pragma GCC optimize("unroll-loops")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read(){
	int s=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
	while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
	return s*w;
}
signed main()
{
	int t=1;
	cin>>t;
	while(t--)
	{
		int n,k;
		cin>>n>>k;
		char mx='a',x,mn='z';
		char s[101]={'0'},s0[101]={'0'};
		for(int i=1;i<=n;i++)
		{
			cin>>x;
			s[i-1]=x;
			s0[n-i]=x;
//			if(i==1)f=x;
//			if(i==n)e=x;
			mx=max(x,mx);
			mn=min(x,mn);
		}
		if(strcmp(s,s0)<0)cout<<"YES"<<endl;
		else if(strcmp(s,s0)==0)
		{
			if(k>0&&mx!=mn)cout<<"YES"<<endl;
			else cout<<"NO"<<endl;
		}
		else 
		{
			if(k>0)cout<<"YES"<<endl;
			else cout<<"NO"<<endl;
		}
	}
	return 0;
}
